$(function(){

  // 获取当前的年月
  var pYear=new Date().getFullYear();
  var pMonth=new Date().getMonth()+1;
  // 循环输出1970-当前年份的option  并选中当前年份
  for(var m=1970;m<=pYear;m++){
    if(m==pYear){
      $('.select_year').append('<option selected value="'+m+'">'+m+'</option>')
    }
    else{
      $('.select_year').append('<option value="'+m+'">'+m+'</option>')
    }
  }
  // 循环输出1-12月份的option  并选中当前月份
  for(var n=1;n<=12;n++){
    if(n==pMonth){
      $('.select_month').append('<option selected value="'+n+'">'+n+'</option>')
    }
    else{
      $('.select_month').append('<option value="'+n+'">'+n+'</option>')
    }
  }

  // 年份按钮点击
  $('.btn_prev_year').click(function(){
    var val=$('.select_year').val();
    val--;
    if(val<1970){
      val=1970;
    }
    $('.select_year').val(val);
    initB();
  })
  $('.btn_next_year').click(function(){
    var val=$('.select_year').val();
    val++;
    if(val>pYear){
      val=pYear;
    }
    $('.select_year').val(val);
    initB();
  })
  // 月份按钮点击
  $('.btn_prev_month').click(function(){
    
    var val1=$('.select_month').val();
    val1--;
    if(val1<1){
      var val2=$('.select_year').val();
      if(val2>1970){
        val1=12;
        $('.select_year').val(val2-1);
      }
      else{
        val1=1;
      }
    }
    $('.select_month').val(val1);
    initB();
  })
  $('.btn_next_month').click(function(){
    var val1=$('.select_month').val();
    val1++;
    if(val1>12){
      var val2=$('.select_year').val();
      if(val2<pYear){
        val1=1;
        $('.select_year').val(val2+1);
      }
      else{
        val1=12;
      }
      
    }
    $('.select_month').val(val1);
    initB();
  })

  // 直接选择select
  $('.select_year').change(function(){
    var year=$(this).val();
    var month=$('.select_month').val();
    initB();
  })
  $('.select_month').change(function(){
    var year=$('.select_year').val();
    var month=$(this).val();
    initB();
  })
  // 点击td
  $('.rili tbody td').click(function(){
    if($(this).text()!=''){
      $('.rili tbody td').removeClass('on');
        $(this).addClass('on');
        var yearVal=$('.select_year').val();
        var monthVal=$('.select_month').val();
        var dayVal=$('.rili tbody td.on').text();
        $('.rili_bot .year').val(yearVal);
        $('.rili_bot .month').val(monthVal);
        $('.rili_bot .day').val(dayVal);
      }
  })

  // 以下是生成日历排版
 //年份输入
 var $td = $('.rili tbody').find('td');
  
 var date = new Date(),
  year = date.getFullYear(),
  month = date.getMonth() + 1,
  day = date.getDate(),days;
  function initB(){
    var year=$('.select_year').val();
    var month=$('.select_month').val();
    initCal(year,month,day);
  }
 function initCal(yy,mm,dd){
  var yy=parseInt(yy);
  var mm=parseInt(mm);
  var dd=parseInt(dd);
  if(mm ==2 && yy%4 == 0 && yy%100 !==0 ){
  days = 28;
  }else if(mm == 1 || mm == 3 || mm == 5 || mm == 7 || mm == 8 || mm == 10 || mm == 12){
  days = 31;
  }else if(mm==4 || mm==6 || mm==9 || mm==11 ){
  days = 30;
  }else{
  days = 29;
  }
  
  var m = mm < 3 ? (mm == 1 ? 13 : 14): mm;
  yy = m > 12 ? yy - 1 : yy;
  var c = Number(yy.toString().substring(0,2)),
   y = Number(yy.toString().substring(2,4)),
   d = 1;
  //蔡勒公式
  var week = y + parseInt(y/4) + parseInt(c/4) - 2*c + parseInt(26*(m+1)/10) + d - 1;
  
  week = week < 0 ? (week%7+7)%7 : week%7;


  for(var i=0 ;i<42;i++){
  $td.eq(i).text('');
  $td.removeClass('on');　　　　
  }
  
  for(var i = 0;i < days; i++){
  $td.eq( week +i).text(i+1);　　　　
  }
 }
  initCal(year,month,day);
 })



